#ifndef HPLCSPARKLINKAUTOSAMPLERDEVICEPROTOCOL_H
#define HPLCSPARKLINKAUTOSAMPLERDEVICEPROTOCOL_H

#include "hplcsparklinkautosamplerdevicesendpacket.h"
#include "hplcsparklinkautosamplerdeviceparsepacket.h"

#include "modulehplcautosamplerdefine.h"

namespace hplc
{
namespace sparklink
{

class HplcSparkLinkAutoSamplerProtocolData;
class HplcSparkLinkAutoSamplerDeviceProtocol : public BaseProtocol
{
    Q_OBJECT
public:
    HplcSparkLinkAutoSamplerDeviceProtocol(AutoSamplerParam &param, QObject *parent = nullptr);
    virtual ~HplcSparkLinkAutoSamplerDeviceProtocol() override;

    HplcSparkLinkAutoSamplerDeviceSendPacket *getSender();
    HplcSparkLinkAutoSamplerDeviceParsePacket *getParser();

    virtual ProtocolType getProtocolType() override;

public slots:
    virtual void onBaseTickTimeout() override;

protected:
    HplcSparkLinkAutoSamplerDeviceProtocol(HplcSparkLinkAutoSamplerProtocolData &data, AutoSamplerParam &param, QObject *parent = nullptr);

private:
    hplc::AutoSamplerParam			*m_param = nullptr;
};

} // sparklink
} // hplc

#endif // HPLCSPARKLINKAUTOSAMPLERDEVICEPROTOCOL_H
